package cn.trip.dao.user;

import java.util.Date;
import java.util.List;

import org.apache.ibatis.annotations.Param;

import cn.trip.pojo.Safe_question;
import cn.trip.pojo.Trip_bill;
import cn.trip.pojo.Trip_question;
import cn.trip.pojo.Trip_room;
import cn.trip.pojo.Trip_tourist;
import cn.trip.pojo.Trip_user;


public interface UserMapper {
	
	//登录
	public Trip_user getUser(@Param("userCode")String userCode,@Param("password")String password);
	
	//修改个人信息
	public int modifyInfo(Trip_user user);
	
	/**
	 * 获取所有此用户的订单
	 */
	public List<Trip_bill> getAllBills(@Param("userCode")String userCode,@Param("from")int currentPageNo,@Param("pageSize")int pageSize);
	
	/**
	 * 根据u_id获取对应订单信息
	 */
	public List<Trip_bill> getBillsById(@Param("userCode")String userCode,@Param("u_id")int u_id,@Param("proType")int proType
								,@Param("from")int currentPageNo,@Param("pageSize")int pageSize);
	
	/**
	 * 根据b_id获取对应信息
	 */
	public Trip_bill getHotelBillsBybid(@Param("b_id")int b_id);
	
	
	/**
	 * 根据b_id获取旅游对应信息
	 */
	public Trip_bill getTravelBillsBybid(@Param("b_id")int b_id);
	
	/**
	 * 获取对应订单的出游人信息
	 */
	public List<Trip_tourist> getTourist(@Param("b_id")int b_id);
	
	/**
	 * 查询门票订单信息
	 */
	public List<Trip_bill> getTicketBills(@Param("u_id")int u_id,@Param("proType")int proType,
							@Param(value="from")Integer currentPageNo,
							@Param(value="pageSize")Integer pageSize);
	/**
	 * 获取对应订单条数
	 */
	public int count(@Param("u_id")int u_id,@Param("proType")int proType);
	
	/**
	 * 获取门票详情
	 */
	public Trip_bill getTicketInfo(@Param("b_id")int b_id,@Param("proType")int proType);
	
	/**
	 * 根据bid删除订单
	 */
	public int delete(@Param("b_id")int b_id);
	
	/**
	 * 获取信息并修改密码
	 */
	public Trip_user getPawUser(@Param("userCode")String userCode);
	
	/**
	 * 判断旧密码是否匹配
	 */
	public Trip_user judgePwd(@Param("userCode")String userCode,@Param("password")String password);
	
	/**
	 * 修改密码
	 */
	public int modifyPaw(@Param("password")String password,@Param("userCode")String userCode);
	
	/**
	 * 查询对应s_id安全问题
	 */
	public Trip_user getQuestionBySid(@Param("s_id")int s_id);
	
	/**
	 * 判断安全问题是否匹配
	 */
	public Safe_question judgeQuestion(@Param("id")int id);
	
	/**
	 * 获取所有安全问题
	 */
	public List<Trip_question> getAllQuestions();
	
	/**
	 * 修改安全问题
	 */
	public int modifyQuestion(@Param("questionId")int questionId,@Param("modifyDate")Date modifyDate,@Param("id")int id,
							@Param("answer")String answer);
	
	/**
	 * 注册所用到的方法
	 */
	public int addAnswer(@Param("questionId")int questionId,@Param("answer")String answer
					,@Param("createDate")Date createDate,@Param("userCode")String userCode);
	/**
	 * 根据userCode查询对应问题id
	 */
	public Safe_question getQ_id(@Param("userCode")String userCode);
	/**
	 * 添加用户信息
	 */
	public int addUser(@Param("userCode")String userCode,@Param("userName")String userName,
				@Param("password")String password,@Param("createDate")Date createDate,
				@Param("userEmail")String userEmail,@Param("s_id")int s_id,
				@Param("userPhone")String userPhone,@Param("userAddress")String userAddress,
				@Param("birth")Date birth,@Param("sex")int sex);
	
	/**
	 * 根据q_id和答案匹配
	 */
	public Safe_question judQuestion(@Param("questionId")int questionId,
				@Param("answer")String answer);
	/**
	 * 修改密码
	 */
	public int modifyPwd(@Param("password")String password,@Param("modifyDate")Date modifyDate,
					@Param("userCode")String userCode);
	
	/**
	 * 通过用户账号查询对应问题
	 */
	public Safe_question getThisQuestion(@Param("userCode")String userCode);
	public Trip_question getThisQuestionByQ_id(@Param("q_id")int q_id);
	
	/**
	 * 修改支付状态
	 */
	public int modifyIspay(@Param("b_id")Integer b_id,@Param("isPay")Integer isPay);
	
}
